// components/yl-send-mail/yl-send-mail.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    // 是否展示
    isShow: {
      type: Boolean,
      value: false,
      observer:'updateShow'
    },
    // 标题
    title: {
      type: String,
      value: "发送到邮箱",
    },
    // 内容
    value: {
      type: String,
      value: "",
    },
    // 报错提示
    warningTip: {
      type: String,
      value: "",
    },
    // 占位文字
    placeholder: {
      type: String,
      value: "请输入邮箱",
    },
    /*
      文本类型
      text 文本输入框
      number 数字输入键盘
      idcard 身份证输入键盘
      digit 带小数点的数字键盘
      safe-password 密码安全输入键盘 指引。仅 Webview 支持。
      nickname 昵称输入键盘
    */
    type: {
      type: String,
      value: "text",
    },
    // 最大输入长度，设置为 -1的时候不限制最大长度，微信默认140
    maxlength: {
      type: Number,
      value: -1,
    },
    // 是否展示取消按钮
    showCancelButton: {
      type: Boolean,
      value: true,
    },
    // 是否展示确认按钮
    showConfirmButton: {
      type: Boolean,
      value: true,
    },
    // 是否使用内置的邮件校验
    isUseVerify: {
      type: Boolean,
      value: true,
    },
  },

  /**
   * 组件的初始数据
   */
  data: {},

  /**
   * 组件的方法列表
   */
  methods: {
    updateShow(val) {
      // 清空之前的值
      if(val) {
        this.setData({
          warningTip:''
        })
      }
    },
    // 取消
    onCancel(event) {
      this.data.isShow = false;
      this.triggerEvent("cancel", event.detail);
    },
    // 输入中
    onInput(event) {
      this.setData({
        value: event.detail.value,
      });
      this.triggerEvent("input", event.detail);
    },
    // 获取焦点
    onFocus(event) {
      this.triggerEvent("focus", event.detail);
    },
    // 失焦
    onBlur(event) {
      this.triggerEvent("blur", event.detail);
    },
    // 点击dialog的完成
    onConfirm(event) {
      if (this.data.isUseVerify) {
        if (this.data.value.length == 0) {
          this.setData({
            warningTip: "请输入邮箱地址",
          });
          return;
        }
        var isEmail = this.validityEmail(this.data.value);
        if (!isEmail) {
          this.setData({
            warningTip: "邮箱不正确址",
          });
          return;
        }
      }
      this.setData({
        warningTip: "",
      });
      this.triggerEvent("confirm", this.data.value);
    },
    // 校验邮箱的正则
    validityEmail(email) {
      var reg = /^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/;
      var emailVar = reg.test(email); // 得到的值为布尔型
      if (emailVar) {
        return true;
      } else {
        return false;
      }
    },
  },
});
